The present invention relates to mobile electronic devices, and more particularly to mobile electronic devices capable of preserving user-defined settings during over-air updates of device settings.
Mobile electronic devices, such as notebook computers, cellular phones, personal data assistants (PDAs) and pocket PCs, are becoming increasingly sophisticated. This increased sophistication has brought with it more complex software and a higher incidence of coding errors, called software bugs. This increased sophistication has also led to more frequent availability of software upgrades that enhance the functionality of such devices. To remove software bugs and enable software upgrades, software updates are disseminated and applied on such devices.
To more efficiently disseminate software updates to a large installed base of mobile electronic devices, techniques that download software updates to such devices over-air have been deployed. In such wireless download schemes, a software update is typically loaded on a software update server in a network infrastructure and is pushed or pulled from the server to a plurality of such devices.
A technical challenge that arises during over-air software updates is how to update device settings without affecting user-defined settings. A software image on a mobile electronic device typically includes device settings that affect, for example, how the device interfaces with the user. These device settings are often initialized to default values that a user of the device can modify to match his or her preferences. Unfortunately, a conventional software update server has no knowledge of which device settings a user has modified. Without such knowledge, there is no way to perform a selective update of device settings via an over-air software update that preserves the user-defined settings. If device settings are globally updated as part of a software update, the user-defined settings are overwritten. The user must then once again modify the device settings to match his or her preferences, consuming the user's time and causing frustration. On the other hand, if device settings are not updated as part of a software update, the device may not perform at a desired level after the update. Old device settings that are no longer required will persist, new device settings that are required by the updated software will not become operative, and device setting default values will not be optimized for the updated software. Incompatibilities arising between the updated software and old device settings may even render the device inoperable.